package com.cskaoyan.javase.object._0introduction;
/**
 * Object类概述
 * Object类，虽然我们没有详细了解，但我们知道了：Object类是所有类继承层次的祖先类，Java中所有类（包括数组）都直接或者间接的继承自该类，都实现了该类的方法。
 *
 * 自定义类时，我们并不需要特别的标注extends Object，这是一个隐式的继承。
 * 如果一个类没有明确的指出它的父类，Object类就默认是这个类的父类，extends Object则已经隐含了，不需要写出来。
 *
 * Object是没有成员变量定义的，并且由于子类对象的隐式初始化，Object类有且仅有一个默认提供的无参构造方法。
 * 所以我们学习Object类，主要关注它的成员方法。
 *
 * Object的成员方法中，提供给外界访问权限的有,今天只学习以下六个：
 *      1.public final Class getClass()
 *          getClass,表示获取Class对象
 *          这个方法本身不重要,很少使用,但是通过这个方法
 *          大家可以了解一下什么是Class对象
 *
 *      2.public String toString()
 *          非常常用,非常重要,但是很简单的方法
 *
 *      3.public boolean equals(Object obj)
 *      4.public int hashCode()
 *          这两个方法是Object类当中,最常用,最具有实际意义的方法
 *          作为重点学习
 *      5.protected void finalize()
 *          这个方法啥用没有,仅做了解
 *          在Java9,及其以后的JDK版本中
 *          该方法被注解"@Deprecate"标记
 *          表示它是一个过时的,被放弃使用的方法
 *
 *          在代码中,禁止使用过时的方法,类.
 *
 *      6.protected Object clone()
 *          它非常重要,因为它代表着一种全新的创建对象的方式
 *          扩展,java中四种创建对象的方式:
 *              a.new对象(SE阶段常见,日常开发中很少见)
 *              b.clone方法(非常罕见)
 *              c.序列化,反序列化(将对象变成一个字符串,永久存储)
 *              d.反射(日常开发中最常见的创建对象方式)
 *          但它又不重要,因为非常少见去使用
 *          clone方法仅做了解
 *
 * @since 10:46
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        test();
    }
    @Deprecated
    private static void test() {
    }
}
